import Vue from 'vue'
import Qs from 'qs'
import ElementUI from 'element-ui';
import router from '../router'


// var obj = {
//   name: "小明",
//   age: 18
// };

// obj.sex = "男";
// obj.sleep = function(){
//   xxxxxx
// }


export default{
  //url统一的管理地址
  url: {
    //登录的url
    login: "/emp/login",
    logout: "/emp/logout",
    depinsert: "/dep/insert",
    deplist: "/dep/list",
    powerlist: "/power/list",
    powerlistByInsert: "/power/listByInsert",
    powerinsert: "/power/insert",
    rolelist: "/role/list",
    roleinsert: "/role/insert",
    powerTrees: "/power/listByTree",
    rolePowers: "/power/rolePower",
    updatePowers: "/role/updatePower",
    emplist: "/emp/list",
    empinsert: "/emp/insert",
    queyrByDIdAndEId: "/role/queyrByDIdAndEId",
    updateRole: "/emp/updateRole",
  },
  //自定义一个ajax的方法
  ajax: function(p){
    //封装axios的对象
    var aobj = {
      //设置请求类型
      method: p.type ? p.type : 'GET',
      //请求的url
      url: p.url
    };

    //预处理一下请求的参数
    var reqParam = p.data ? p.data : {};

    //根据类型设置参数
    if(aobj.method == "POST") {
      //POST请求
      aobj.transformRequest = [
        function (data) {
        		return Qs.stringify(data)
        }
      ];
      aobj.data = reqParam;
    } else {
      //GET请求
      aobj.params = reqParam;
    }

    //设置axios属性，开启cookie的传递
    aobj.withCredentials = true;

    //axios发送ajax请求获取数据
    Vue.axios(aobj).then((resp) => {
        //成功的回调方法
        if(p.success) {
            var sdata = resp.data;
            //统一的异常处理
            if(sdata.code == 405) {
              //参数校验异常
              var error = data.data;
              //获取当前对象中的所有value
              for(var er in error){
                var info = error[er]
                Vue.prototype.$message.error(info);
              }
            } else if(sdata.code == 410){
              //弹出通知

              Vue.prototype.$notify({
                title: '警告',
                message: '默认密码不安全，请先修改密码！',
                type: 'warning'
              });
            } else if(sdata.code == 412){
              //权限不足
              router.push("/NoPower");
            } else if(sdata.code == 411){
              //需要登录
              Vue.prototype.$notify({
                title: '警告',
                message: '需要进行身份认证，才能访问该资源',
                type: 'warning'
              });
              router.push("/");
            } else {
              //调用传递过来的成功的方法
              p.success(resp.data);
            }
        }
    });
  },
  //保存数据
  save(key, obj) {
    localStorage.setItem(key, JSON.stringify(obj));
  },
  //获取数据
  get(key) {
    return JSON.parse(localStorage.getItem(key));
  }

}
